跳到主要内容

package-lock.json lockfileVersion字段的含义

lockfileVersion 指的是 package-lock.json 文件本身的格式版本:

常见版本与npm的版本对应关系

  • lockfileVersion = 1

    • npm 5 和 6 使用
    • 支持嵌套依赖的描述格式
  • lockfileVersion = 2

    • npm 7 引入
    • 增加了对 npm 工作空间(workspaces)的支持
  • lockfileVersion = 3

    • npm 7 及以后的推荐格式
    • 提供了更好的性能和更多的功能支持

示例 package-lock.json:

{
"name": "project-name",
"lockfileVersion": 3,
"requires": true,
"packages": {
// ... 依赖包信息
}
}

lockfileVersion补充说明

  1. 版本对应关系
  • lockfileVersion 不直接对应 npm 的主版本号
  • 一个 npm 版本可能支持多个 lockfileVersion
  1. 向后兼容
  • 较新版本的 npm 可以读取旧版本的 lock 文件
  • 但建议使用当前 npm 版本推荐的 lockfileVersion
  1. 迁移建议
  • 如果你的项目使用较老的 lockfileVersion,建议在升级 npm 时同时升级 lock 文件版本
  • 可以通过删除 package-lock.json 并重新运行 npm install 来生成新版本的 lock 文件